Encoding method and apparatus for cross interleaved cyclic codes

ABSTRACT

The invention relates to an encoding method for encoding a codeword to obtain a parity code. The code is embedded in the codeword and divides the codeword to have intermediate symbol locations between a first and a second set of data symbols. Each data symbol forms a coefficient. The first and the second set of data symbols and the parity code respectively form a first polynomial (M 1 (x)), a second polynomial (M 2 (x)), and a parity code polynomial (R(x)). The method comprises: first, designing a first code generator polynomial (G 1 (x)); next, dividing M 1 (x)x 4  by G 1 (x) to obtain a first remainder polynomial (R 1 (x)); next, generating a second code generator polynomial (G 2 (x)) from G 1 (x); next, generating a third polynomial (M 3 (x)); next, dividing M 3 (x)x 4  by G 2 (x) to obtain a second remainder polynomial (R 2 (x)); next, performing an adding procedure to R 1 (x) and R 2 (x) to obtain R(x); finally, obtaining the parity code from each coefficient of R(x).

RELATED APPLICATIONS

This application is a Division of currently pending application U.S. Ser. No. 10/969,949, entitled “ENCODING METHOD AND APPARATUS FOR CROSS INTERLEAVED CYCLIC CODES” and filed on Oct. 22, 2004 now U.S. Pat. No. 7,472,333.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to an encoding method, especially to an encoding method of cross interleaved Reed-Solomon cyclic code (CIRC).

2. Description of the Prior Art

In the encoding method of a conventional data recording system, there are many kinds of methods to encode a codeword to obtain a corresponding parity code. A codeword comprises several data symbol. Conventional encoding method is to place the parity code at the end of these data symbol; however, the encoding calculation is quite complex and takes lots of time when the parity code is not at the end of data symbol. The encoding method of cross interleaved Reed-Solomon cyclic code (CIRC) is to place the parity code within these data symbols. Taking the CIRC RS (28, 24) of the compact disc standards for example, for a total of 24 data symbols and 4 parity codes desired to be generated at the end, the conventional encoding method of CIRC needs a total of 255 calculating cycles.

In conventional encoding method or encoding system, there is still plenty of room for improvement in terms of decreasing the calculating cycle and lowering system complexity.

SUMMARY OF THE INVENTION

The present invention provides an encoding method and apparatus of cross interleaved Reed-Solomon cyclic code (CIRC) to shorten the calculating cycle and decrease the system complexity.

In one embodiment, the present invention provides an encoding method for encoding a codeword to obtain a corresponding parity code. The parity code is embedded in the codeword and divides the codeword to have intermediate symbol locations between a first and a second set of data symbols. Each data symbol forms a coefficient. The two sets of data symbols and the parity code respectively form two polynomials (M1(x), (M2(x)) and a parity code polynomial (R(x)).

According to a desired parity resolution, a first code generator polynomial (G1(x)) is designed. Then, according to a predetermined reciprocal substitution procedure, a second code generator polynomial (G2(x)) is generated from the first code generator polynomial (G1(x)). Afterwards, a third polynomial (M3(x)) is generated, wherein the coefficients of the third polynomial (M3(x)) in the ascending order are in the reverse permuted order of the coefficients of the second polynomial (M2(x)) in the ascending order.

The first polynomial (M1(x) x⁴) is divided by the first code generator polynomial (G1(x)), so as to obtain a first remainder polynomial (R1(x)). Then, the third polynomial (M3(x) x⁴) is divided by the second code generator polynomial (G2(x)), so as to obtain a second remainder polynomial (R2(x)). Afterwards, an adding procedure is performed on the first remainder polynomial (R1(x)) and the second remainder polynomial (R2(x)) to obtain the parity code polynomial (R(x)). Finally, the parity code is obtained from each coefficient of the parity code polynomial (R(x)).

The encoding apparatus and method of the present invention is used for encoding a codeword by an encoding method of CIRC to obtain a corresponding parity code. By the method of the present invention, not only is the needed calculating cycle decreased, but the complexity of the system complexity decreased too.

The advantage and spirit of the invention may be understood by the following recitations together with the appended drawings.

BRIEF DESCRIPTION OF THE APPENDED DRAWINGS

FIG. 1 is a schematic diagram of the encoding method according to the present invention.

FIG. 2 is a schematic diagram of the encoding apparatus according to the present invention.

FIG. 3 is a schematic diagram of one embodiment of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

Referring to FIG. 1, FIG. 1 is a schematic diagram of the encoding method according to the present invention. The encoding method of the present invention is, used for encoding a codeword 30 to obtain a corresponding parity code 32. As shown in FIG. 1, in one embodiment, the codeword 30 is encoded by the encoding method of the cross interleaved Reed-Solomon cyclic code (CIRC), utilized in a compact disc. The parity code 32 is embedded in the codeword 30 and divides the codeword 30 to have intermediate symbol locations between a first set of data symbol 34 and a second set of data symbol 36. The first set of data symbol 34 and the second set of data symbol 36 respectively comprise 12 data symbols, and the parity code 32 comprises 4 data symbols.

Each data symbol forms a coefficient. The corresponding coefficients of the first set of data symbols 34 are m₂₃, m₂₂, m₂₁ . . . and m₁₂; the corresponding coefficients of the second set of data symbols 36 are m₁₁, m₁₀, m₉ . . . and m₀. The first set of data symbols 34, the second set of data symbols 36, and the parity code 32 respectively form a first polynomial (M1(x)), a second polynomial (M2(x)), and a parity code polynomial (R(x)), wherein R(x) is the polynomial desired to be obtained. Besides, a third polynomial (M3(x)) is generated by reverse permuting the coefficients of the second polynomial (M2(x)), wherein the coefficients of the third polynomial (M3(x)) in the ascending order are in the reverse permuted order of the coefficients of the second polynomial (M2(x)) in the ascending order. Each polynomial is expressed as follows: the first polynomial is M1(x)=m ₂₃ x ¹¹ +m ₂₂ x ¹⁰ + . . . +m ₁₃ x+m ₁₂; the second polynomial is M2(x)=m ₁₁ x ¹¹ +m ₁₀ x ¹⁰ + . . . +m ₁ x+m ₀; and the third polynomial is M3(x)=m ₀ x ¹¹ +m ₁ x ¹⁰ + . . . +m ₁₀ x+m ₁₁.

Each data symbol is an 8-bit digital data, and the value of each data symbol is selected from 0 to 255. The values of the data symbols are mapped in correspondence to the elements of a Galois Field (GF(2⁸)) through a predetermined mapping relationship. The values of the data symbols range from 0 to 255 and are respectively mapped to the 256 corresponding elements (0, α⁰, α¹ . . . α²⁵⁴) of the GF(2⁸). That means, the coefficients (m0 . . . m23) are all selected from the elements (0, α⁰, α¹ . . . α²⁵⁴) of the GF(2⁸).

Beside the CIRC utilized in a compact disc, the encoding method of the present invention can also be used in other applications in which the concept is the CIRC, and the data symbols can be random bit digital data.

In the encoding method of the present invention, a first code generator polynomial (G1(x)) is designed according to a desired parity resolution, wherein G1(x)=(x+α⁰)(x+α¹)(x+α²)(x+α³)=α⁶+α⁷⁸x+α²⁴⁹x²+α⁷⁵x³+x⁴. Moreover, according to a reciprocal substitution procedure, a second code generator polynomial (G2(x)) is generated from the first code generator polynomial (G1(x)), wherein the reciprocal substitution procedure is to select the reciprocal of α⁰, α¹, α², and α³ of G1(x)=(x+α⁰)(x+α¹) (x+α²)(x+α³) and makes G2(x) as G2(x)=(x+α⁰)(x+α⁻¹)(x+α⁻²)(x+⁻³). After multiplying G2(x), the coefficients are correspondingly mapped to the elements (0, α⁰, α¹ . . . α²⁵⁴) of the GF(2⁸), so as to obtain G2(x)=(x+α⁰)(x+α⁻¹)(x+α⁻²) (x+α⁻³)=α²⁴⁹+α⁶⁹x+α²⁴³x²+α⁷²x³+x⁴.

The first polynomial (M1(x) x⁴) is divided by the first code generator polynomial (G1(x)) to obtain a first remainder polynomial (R1(x)). Then, the third polynomial (M3(x) x⁴) is divided by the second code generator polynomial (G2(x)) to obtain a second remainder polynomial (R2(x)). Furthermore, an adding procedure is performed on the first remainder polynomial (R1(x)) and the second remainder polynomial (R2(x)), so as to obtain the parity code polynomial (R(x)). Finally, the parity code 32 is obtained from each coefficient of the parity code polynomial (R(x)).

In the encoding method of the present invention, the values of the data symbols are replaced by the 256 elements (0, α⁰, α¹ . . . α²⁵⁴) of the GF(2⁸), which will be the coefficients for later calculations of the polynomials. After obtaining the parity code polynomial (R(x)) by the elements of the GF(2⁸), with the coefficients of each terms of the obtained parity code polynomial (R(x)), the present invention obtains the corresponding values through the mapping relationship, so as to form the parity code 32.

The above-mentioned first code generator polynomial (G1(x)) and the second code generator polynomial (G2(x)) are not the only ones. They can be expressed as G1(x)=C₁(x+α⁰)(x+α¹) (x+α²)(x+α³) and

G2(x)=C₂(x+α⁰)(x+α⁻¹)(x+α⁻²)(x+α⁻³) wherein C₁ and C₂ can be one of the elements (0, α⁰, α¹ . . . α²⁵⁴) of the GF(2⁸). That means different G1(x) corresponds to a G2(x).

Besides, in the encoding method of the present invention, the higher the desired parity resolution is, the more terms the first code generator polynomial has, and the longer the parity code 32 becomes.

The encoding method of the present invention is applied in a first encoding circuit and a second encoding circuit (not shown in FIG. 1). The detailed description of the adding procedure is as follows. First, 16 inputs (m₂₃, m₂₂ . . . m₁₃, m₁₂0, 0, 0, 0) are received sequentially by the first encoding circuit, then 16 outputs are generated correspondingly, and the last 4 outputs as R₃ ⁽¹⁾), R₂ ⁽¹⁾), R₁ ⁽¹⁾, and R₀ ⁽¹⁾ are defined respectively; the first remainder polynomial (R1(x)) is then formed: R1(x)=R ₃ ⁽¹⁾ +R ₂ ⁽¹⁾ x+R ₁ ⁽¹⁾ x ² +R ₀ ⁽¹⁾ x ³.

Next, the 16 inputs (m₀, m₁ . . . m₁₀, m₁₁, 0, 0, 0, 0) are received sequentially by the second encoding circuit, then 16 outputs are generated correspondingly, and the last 4 outputs as R₀ ⁽²⁾, R₁ ⁽²⁾, R₂ ⁽²⁾, and R₃ ⁽²⁾ are defined respectively; the second remainder polynomial (R2(x)) is then formed: R2(x)=R ₀ ⁽²⁾ +R ₁ ⁽²⁾ x+R ₂ ⁽²⁾ x ² +R ₃ ⁽²⁾ x ³.

Next, the coefficients of the second remainder polynomial (R2(x)) are permuted in the reverse order, so as to obtain a third remainder polynomial (R3(x)): R3(x)=R ₃ ⁽²⁾ +R ₂ ⁽²⁾ x+R ₁ ⁽²⁾ x ² +R ₀ ⁽²⁾ x ³.

Then, the first remainder polynomial (R1(x)) and the third remainder polynomial (R3(x)) are added to obtain the parity code polynomial (R(x)):

$\begin{matrix} {{R(x)} = {R_{3} + {R_{2}\mspace{14mu} x} + {R_{1}\mspace{14mu} x^{2}} + {R_{0}\mspace{14mu} x^{3}}}} \\ {= {{R\; 1(x)} + {R\; 3(x)}}} \\ {= {\left( {R_{3}^{(1)} + R_{3}^{(2)}} \right) + {\left( {R_{2}^{(1)} + R_{2}^{(2)}} \right)x} +}} \\ {{\left( {R_{1}^{(1)} + R_{1}^{(2)}} \right)x^{2}} + {\left( {R_{0}^{(1)} + R_{0}^{(2)}} \right){x^{3}.}}} \end{matrix}$

Referring to FIG. 2, FIG. 2 is a schematic diagram of the encoding apparatus 50 according to the present invention. In the embodiment shown in FIG. 2, the encoding apparatus 50 of the present invention comprises a timing controller 51, 8 multipliers 54, 8 registers 56, and 8 adders 57. Four multipliers 54, 4 registers 56, an input end 70, and 4 adders 57 form a first encoding circuit 50 a; the other 4 multipliers 54, 4 registers 56, an input end 70, and 4 adders 57 form a second encoding circuit 50 b. The first encoding circuit 50 a and the second encoding circuit 50 b share one timing controller 51.

The timing controller 51 is for issuing a timing controlling signal to control operations of the encoding apparatus 50. Each multiplier 54 is used for multiplying an input with a predetermined stored coefficient to obtain a corresponding output. Four registers 56 form 4 stages of serially-cascaded registers 56, and each stage of registers 56 is used for temporarily storing a registered data in the register 56 of the stage and updating the registered data according to the timing controlling signal. Each adder 57 is used for adding an output of the multiplier 54 with the registered data in the register 56 of the previous stage. Each stage of registers 56 is used for temporarily storing an output of a corresponding adder 57 to generate the registered data in the register 56 of the stage.

The initial value of the registers 56 of each encoding circuit (50 a and 50 b) can be 0 or one of the elements (0, α⁰, α¹ . . . α²⁵⁴) of the GF(2⁸). Since the initial values of the registers 56 are known, the parity code 32 corresponding to the initial values can be calculated; the known initial values of the registers 56 are then subtracted from the parity code 32, and a desired parity code 32 can be obtained.

In the first encoding circuit 50 a, first, the coefficients (α⁶, α⁷⁸, α²⁴⁹, and α⁷⁵) of G1(x) are respectively pre-stored into the 4 multipliers 54 from left to right. At this time, the first encoding circuit 50 a comprises 4 GF multipliers 54 which has already respectively pre-stored the coefficients (α⁶, α⁷⁸, α²⁴⁹, and α⁷⁵), 4 registers 56, and 4 GF adders 57, and the registered data in the 4 registers 56 are all 0 in the initial state. Then, according to the timing controlling signal, sixteen coefficients (m₂₃, m₂₂ . . . 0, 0, 0, 0) of the first polynomial (M1(x)) are sequentially accepted at the input end 70, from high order terms to low order terms, as the inputs of the multipliers 54, and 16 outputs are generated correspondingly; the last 4 outputs are defined as R₃ ⁽¹⁾, R₂ ⁽¹⁾, R₁ ⁽¹⁾, and R₀ ⁽¹⁾ respectively. Finally, the first remainder polynomial: R1(x)=R₃ ⁽¹⁾+R₂ ⁽¹⁾x+R₁ ⁽¹⁾x²+R₀ ⁽¹⁾x³, is formed.

In the second encoding circuit 50 b, first, the coefficients (α²⁴⁹, α⁶⁹, α²⁴³, and α⁷²) of G2(x) are respectively pre-stored into the 4 multipliers 54 from left to right. At this time, the second encoding circuit 50 b comprises 4 GF multipliers 54 which have already respectively pre-stored the coefficients (α²⁴⁹, α⁶⁹, α²⁴³, and α⁷²), 4 registers 56, and 4 GF adders 57. According to the timing controlling signal, sixteen coefficients (m₀, m₁ . . . m₁₁, 0, 0, 0, 0) of the third polynomial (M3(x)) are sequentially accepted at the input end 70, from high order terms to low order terms, and 16 outputs are generated correspondingly; the last 4 outputs are defined as R₀ ⁽²⁾, R₁ ⁽²⁾, R₂ ⁽²⁾), and R₃ ⁽²⁾ respectively. Then, the second remainder polynomial: R2(x)=R₀ ⁽²⁾+R₁ ⁽²⁾x+R₂ ⁽²⁾x²+R₃ ⁽²⁾x³, is formed. Finally, the coefficients of the second remainder polynomial (R2(x)) are permuted in the reverse order to obtain a third remainder polynomial: R3(x)=R₃ ^((2)+R) ₂ ⁽²⁾x+R₁ ⁽²⁾x²+R₀ ⁽²⁾x³.

The first remainder polynomial (R1(x)) and the third remainder polynomial (R3(x)) are summed up to obtain the parity code polynomial (R(x)):

$\begin{matrix} {{R(x)} = {R_{3} + {R_{2}\mspace{14mu} x} + {R_{1}\mspace{14mu} x^{2}} + {R_{0}\mspace{14mu} x^{3}}}} \\ {= {{R\; 1(x)} + {R\; 3(x)}}} \\ {= {\left( {R_{3}^{(1)} + R_{3}^{(2)}} \right) + {\left( {R_{2}^{(1)} + R_{2}^{(2)}} \right)x} +}} \\ {{\left( {R_{1}^{(1)} + R_{1}^{(2)}} \right)x^{2}} + {\left( {R_{0}^{(1)} + R_{0}^{(2)}} \right){x^{3}.}}} \end{matrix}$ From the coefficients (R₃, R₂, R₁, and R₀) of each term of the parity code polynomial (R(x)), the corresponding values can be calculated with the mapping relationship, so as to obtain the parity code 32.

The above-mentioned embodiment uses two encoding circuit to operate, and each encoding circuit is not complicated; therefore, the present invention can decrease the system complexity. Besides, the present invention is the encoding method of CIRC; the encoding calculation is much simpler and time-saving.

The present invention is also able to perform encoding operations by single encoding circuit that means when the coefficients M1(x) and M3(x) are inputted in the calculation, the coefficients of G1(x) and G2(x) can be sequentially stored into multipliers 54, so as to obtain the same efficiency.

Referring to FIG. 3, FIG. 3 is a schematic diagram of the encoding circuit 60 and the polynomials of the encoding apparatus 50 of another embodiment according to the present invention. The encoding circuit 60 in FIG. 3 can replace the encoding circuits (50 a and 50 b) in FIG. 2. In the encoding circuit 60, two data can be inputted at the same time; that means two data can be handled in one timing. From the formula shown in FIG. 3, when m(n−1) and m(n) and the remainders (r3(n−1), r2(n−1), r1(n−1), and r0(n−1)) of the previous time are inputted, the remainders (r3(n+1), r2(n+1), r1(n+1), and r0(n+1)) of the next time can be directly obtained. When m(n−1) and m(n) are inputted at the same cycle, the remainder results, after calculating for two steps, can be obtained after one cycle. Wherein (n) represents the present cycle, (n−1) represents the cycle of the previous time, (n+1) represents the cycle of the next time, and so on. The circuit, which is able to input more than three data, can be obtained in a similar method.

The encoding method of the present invention can also be performed by the digital signal processor (DSP).

According to the above description, the encoding apparatus 50 and the method of the present invention is used for encoding a codeword 30 by an encoding method of CIRC to obtain a corresponding parity code 32. By the method of the present invention, not only is the necessary calculating cycle decreased, but the system complexity is decreased too.

With the example and explanations above, the features and spirits of the invention will be hopefully well described. Those skilled in the art will readily observe that numerous modifications and alterations of the device may be made while retaining the teaching of the invention. Accordingly, the above disclosure should be construed as limited only by the metes and bounds of the appended claims. 

1. An encoding apparatus for encoding a codeword to obtain a corresponding parity code, the parity code being embedded in the codeword and dividing the codeword to have intermediate symbol locations between a first and a second set of data symbols, each data symbol forming a coefficient, the first set of data symbols, the second set of data symbols, and the parity code respectively forming a first polynomial (M1(x)), a second polynomial (M2(x)), and a parity code polynomial (R(x)), the encoding apparatus comprising: a timing controller for issuing a timing controlling signal to control operations of the encoding apparatus; a plurality of multipliers, each multiplier being used for multiplying an input with a predetermined stored coefficient to obtain a corresponding output, multiple stages of serially-cascaded registers, each stage of registers being used for temporarily storing a registered data in the register of said stage and updating the registered data according to the timing controlling signal; and a plurality of adders, each adder being used for adding an output of the multiplier with the registered data in the register of the previous stage, each stage of registers being used for temporarily storing an output of a corresponding adder to generate the registered data in the register of said stage; wherein, the adders store a plurality of coefficients of a first code generator polynomial (G1(x)) in advance, and sequentially accepting the plural coefficients of the first polynomial (M1(x)) from high order terms to low order terms as the inputs of the adders according to the timing controlling signal, so as to obtain a plurality of coefficients of a first remainder polynomial (R1(x)); and wherein the multipliers store a plurality of coefficients of a second code generator polynomial (G2(x)), the second code generator polynomial (G2(x)) being generated from the first code generator polynomial (G1(x)) via a predetermined reciprocal substitution procedure; and wherein the multipliers sequentially accept the plurality of coefficients of the second polynomial (M2(x)) from low order terms to high order terms as the inputs of the multipliers according to the timing controlling signal, so as to obtain a plurality of coefficients of a second remainder polynomial (R2(x)); and wherein finally, the coefficient of each term of the parity code polynomial (R(x)), therefore the parity code, is obtained by performing an adding procedure on the first remainder polynomial (R1(x)) and the second remainder polynomial (R2(x)).
 2. The encoding apparatus of claim 1, wherein each data symbol is an 8-bit digital data, and the values of the data symbols are mapped to the elements of a Galois Field (GF(2⁸)) through a predetermined mapping relationship, and the values of the data symbols range from 0 to 255, and are respectively mapped to the 256 elements (0, α⁰, α¹ . . . α²⁵⁴) of the GF(2⁸).
 3. The encoding apparatus of claim 2, wherein the multiplier is a GF multiplier based on the GF(2⁸) operation rules, and the adder is a GF adder based on the GF(2⁸) operation rules.
 4. The encoding apparatus of claim 2, wherein the first polynomial is expressed as follows: M1(X)=m ₂₃ x ¹¹ +m ₂₂ x ¹⁰ + . . . +m ₁₃ x+m ₁₂; the second polynomial is expressed as follows: M2(X)=m ₁₁ x ¹¹ +m ₁₀ x ¹⁰ + . . . +m ₁ x+m ₀; the third polynomial is expressed as follows: M3(X)=m ₀ x ¹¹ +m ₁ x ¹⁰ + . . . +m ₁₀ x+m ₁₁; and the coefficients (m₀ . . . m₂₃) are selected from the elements (0, α⁰, α¹ . . . α²⁵⁴) of the GF(2⁸).
 5. The encoding apparatus of claim 4, wherein the first code generator polynomial is expressed as follows: G1(x)=(x+α ⁰)(x+α ¹)(x+α ²)(x+α ³)=α⁶+α⁷⁸ x+α ²⁴⁹ x ²+α⁷⁵ x ³ +x ⁴; and the second code generator polynomial is expressed as follows: G2(x)=(x+α ⁰)(x+α ⁻¹)(x+α ⁻²)(x+α ⁻³)=α²⁴⁹+α⁶⁹ x+α ²⁴³ x ²+α⁷² x ³ +x ⁴.
 6. The encoding apparatus of claim 5, wherein the encoding apparatus comprises a first encoding circuit and a second encoding circuit, the first encoding circuit comprises 4 GF multipliers with four predetermined-stored coefficients (α⁶, α⁷⁸, α²⁴⁹, and α⁷⁵), 4 registers, and 4 GF adders, and the second encoding circuit comprises 4 GF multipliers with four predetermined-stored coefficients (α²⁴⁹, α⁶⁹, α²⁴³, and α⁷²), 4 registers, and 4 GF adders.
 7. The encoding apparatus of claim 6, wherein the registered data in the 4 registers of the first and second encoding circuit are all 0 in the initial state.
 8. The encoding apparatus of claim 7, wherein the adding procedure comprises steps of: the second encoding circuit receiving 16 inputs (m₂₃, m₂₂, . . . m₁₃, m₁₂, 0, 0, 0, 0) sequentially according to the timing controlling signal, then generating 16 outputs correspondingly, and defining the last 4 outputs as R₃ ⁽¹⁾, R₂ ⁽¹⁾, R₁ ⁽¹⁾, and R₀ ⁽¹⁾ respectively, to form the first remainder polynomial (R1(x)): R1(x)=+R ₃ ⁽¹⁾ +R ₂ ⁽¹⁾ +R ₁ ⁽¹⁾ x ² +R ₀ ⁽¹⁾ x ³.
 9. The encoding apparatus of claim 8, wherein the second encoding circuit receives the 16 inputs (m₀, m₁, . . . m₁₀, m₁₁, 0, 0, 0, 0) sequentially according to the timing controlling signal, then generates 16 outputs correspondingly, and defines the last 4 outputs as R₀ ⁽²⁾, R₁ ⁽²⁾, R₂ ⁽²⁾, and R₃ ⁽²⁾ respectively, to form the second remainder polynomial (R2(x)): R2(x)=R ₀ ⁽²⁾ +R ₁ ⁽²⁾ +R ₂ ⁽²⁾ x ² +R ₃ ⁽³⁾ x ³; and then permutes the coefficients of the second remainder polynomial (R2(x)) in the reverse order, so as to obtain a third remainder polynomial (R3(x)): R3(x)=R ₃ ⁽²⁾ +R ₂ ⁽²⁾ +R ₁ ⁽²⁾ x ² +R ₀ ⁽²⁾ x ³.
 10. The encoding apparatus of claim 9, wherein the apparatus adds the first remainder polynomial (R1(x)) and the third remainder polynomial (R3(x)) to obtain the parity code polynomial (R(x)): $\begin{matrix} {{R(x)} = {R_{3} + {R_{2}\mspace{14mu} x} + {R_{1}\mspace{14mu} x^{2}} + {R_{0}\mspace{14mu} x^{3}}}} \\ {= {{R\; 1(x)} + {R\; 3(x)}}} \\ {= {\left( {R_{3}^{(1)} + R_{3}^{(2)}} \right) + {\left( {R_{2}^{(1)} + R_{2}^{(2)}} \right)x} +}} \\ {{{\left( {R_{1}^{(1)} + R_{1}^{(2)}} \right)x^{2}} + {\left( {R_{0}^{(1)} + R_{0}^{(2)}} \right)x^{3}}};} \end{matrix}$ and the parity code is obtained by calculating the corresponding values based on the coefficients (R₃, R₂, R₁, and R₀) of each term of the parity code polynomial (R(x)) and the predetermined mapping relationship. 